Modern computer systems often have a plurality of "intelligent" devices interconnected by a high speed communications link. Within a single computer, multiple processors may use an internal data bus to communicate with each other and with shared memory. In a distributed system, multiple computers may use a network to communicate with each other and with shared peripherals such as disk drives, tape drives and printers. Typically only one device can "talk" or "transmit" on the communications link at any one time. If several devices simultaneously contend for access to the communications link, the system must provide a protocol for deciding which device is granted access. This process is called arbitration. In some systems, access is granted randomly. In others, devices are assigned a priority so that if several devices simultaneously contend for access, access is granted to the device with the highest priority.
U.S. application Ser. No. 07/436,144 filed Nov. 13, 1989 by Ross M. Wille and Richard J. Carter entitled "Distributed Fair Arbitration Scheme for Providing Access to a Data Communication Bus" (hereinafter referred to as the Wille application) is specifically incorporated herein by reference for all that it teaches.
In this application, the word "agent" is used to describe any device capable of contending or arbitrating for access to a data communications link. In some arbitration protocols, when an agent gains access to the communications link, the accessing agent is moved to the lowest priority. As agents access the communications link and are moved to the lowest priority, the agents which have accessed the communications link least recently achieve higher priority. Thus, the protocol is a "fair" arbitration protocol which prevents one agent from locking out other agents for extended periods of time. Given N agents, the protocol guarantees that each agent will gain access to the communications link within N-1 transaction times, in the worst case, when every agent is continuously requesting access to the communications link.
The protocol described above is desirable when all agents have equal urgency of access, or where it is important to guarantee each agent access within a particular minimum time. However, in some applications it is desirable to temporarily allow one agent to maintain its priority even after it has accessed the communications link. For example, in a graphics intensive application, it may be desirable to have the flexibility to allow an application or operating system to allow a graphics computation agent to complete a graphics task before it is moved to the lowest priority. Alternatively, in a network application, it may be desirable for an agent to always send a fixed number of packets before yielding priority.